#include "main.h"
typedef struct Queue1
{
 int *front;
 int *rear;
}Queue1;
Queue1 b;
int init_queue(Queue**q)
{
 (*q)=(Queue*)malloc(sizeof(Queue));
  if (!*q)
  {
   return 1;
  }
  b.front=(*q)->elements;
  (*q)->size =0;
  b.rear=b.front;
  return 0;
 };

int enqueue(Queue*q,int value)
{
 if (q->size>QUEUE_MAX_SIZE)
 {
  return 1;
 }
 b.rear++;
 q->elements[q->size]=value;
 q->size++;
 return 0;
};

int dequeue(Queue*q,int*value)
{
 if (b.front==b.rear)
 {
  return 1;
 }
 *value=*(b.front);
 b.front++;
 q->size--;
 return 0;
};

int first(Queue*q,int*value)
{
 if (b.front==b.rear)
 {
  return 1;
 }
 *value=*(b.front);
 return 0;
}

int is_empty(Queue*q)
{
 if (q->size==0)
  return 0;
 return 1;
}

int size(Queue*q)
{
 return q->size;
};
int main(){}